package com.gomeplus.diamond;

import java.util.UUID;
/**
 * String 共通方法定义.
 *
 * @project gome
 * @author
 * @date Sep 01, 2010
 * @version 1.0
 * <p>
 * copyright (c) Founder
 */

/**
 * the StringUtil class
 *
 * @author Administrator
 *
 */
public class StringDiamondUtils {
    /**
     * 空字符串
     */
    private static final String EMPTY_STR = "";
    /**
     * 分隔符
     */
    private static final String SEP = ",";

    /**
     * 将为NULL的String设置为空串。
     *
     * @param str
     *            字符串
     * @return String
     */
    public static String trimNull(String str) {
        return str == null ? EMPTY_STR : str;
    }


    /**
     * 判断字符串是否为NULL和空串。
     *
     * @param str
     *            字符串
     * @return boolean
     */
    public static boolean isEmpty(String str) {
        return !notEmpty(str);
    }

    /**
     * 判断字符串是否不为NULL和空串。
     *
     * @param str
     *            字符串
     * @return boolean
     */
    public static boolean notEmpty(String str) {
        return str != null && str.trim().length() > 0;
    }


    /**
     * NVL
     *
     * @param str
     *            str
     * @return String
     */
    public static String NVL(Object str) {
        if (str == null) {
            return "";
        }
        return NVL(str.toString());
    }

    /**
     * NVL
     *
     * @param str
     *            str
     * @return String
     */
    public static String NVL(String str) {
        if (str == null) {
            return "";
        }
        if (str.equals("null")) {
            return "";
        }
        if (str.equals("null|null")) {
            return "";
        }
        return str;
    }


    /**
     * 获取uuid
     *
     * @return
     */
    public static String getUUID() {
        String s = UUID.randomUUID().toString();
        s = s.substring(0, 8) + s.substring(9, 13) + s.substring(14, 18) + s.substring(19, 23) + s.substring(24);
        return s;
    }

    public static boolean areNotEmpty(String[] values) {
        boolean result = true;
        if ((values == null) || (values.length == 0)) {
            result = false;
        } else {
            for (String value : values) {
                result &= !isNullorBlank(value);
            }
        }
        return result;
    }

    public static boolean isNullorBlank(String value) {
        return (null == value) || ("".equals(value.trim()));
    }

    /**
     * toString
     *
     * @param obj
     * @return
     */
    public static String toString(Object obj) {
        return obj == null ? null : obj.toString();
    }

    /**
     * toString ignore null
     *
     * @param obj
     * @return
     */
    public static String toStringIgnoreNULL(Object obj) {
        return obj == null ? "" : obj.toString();
    }

}
